import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from "../views/Login";
import Main from '../views/Main';
import CategoryEdit from "../views/CategoryEdit";
import CategoryList from "../views/CategoryList";
import ItemEdit from "../views/ItemEdit";
import ItemList from "../views/ItemList";
import HeroEdit from "../views/HeroEdit";
import HeroList from "../views/HeroList";
import ArticleEdit from "../views/ArticleEdit";
import ArticleList from "../views/ArticleList";
import AdEdit from "../views/AdEdit";
import AdList from "../views/AdList";
import AdminUserEdit from "../views/AdminUserEdit";
import AdminUserList from "../views/AdminUserList";

Vue.use(VueRouter)

const routes = [
	{
		path: '/login',
		name: 'login',
		component: Login,
		meta: { isPublic: true }
	},
  {
    path: '/',
    name: 'main',
    component: Main,
	  children: [
		  {path: '/categories/create', component: CategoryEdit},
		  {path: '/categories/edit/:id', component: CategoryEdit, props: true},
		  {path: '/categories/list', component: CategoryList},

		  {path: '/items/create', component: ItemEdit},
		  {path: '/items/edit/:id', component: ItemEdit, props: true},
		  {path: '/items/list', component: ItemList},

		  {path: '/heroes/create', component: HeroEdit},
		  {path: '/heroes/edit/:id', component: HeroEdit, props: true},
		  {path: '/heroes/list', component: HeroList},

		  {path: '/articles/create', component: ArticleEdit},
		  {path: '/articles/edit/:id', component: ArticleEdit, props: true},
		  {path: '/articles/list', component: ArticleList},

		  {path: '/ads/create', component: AdEdit},
		  {path: '/ads/edit/:id', component: AdEdit, props: true},
		  {path: '/ads/list', component: AdList},

		  {path: '/admin_users/create', component: AdminUserEdit},
		  {path: '/admin_users/edit/:id', component: AdminUserEdit, props: true},
		  {path: '/admin_users/list', component: AdminUserList},
	  ]

  },

]

const router = new VueRouter({
  routes
})

// 导航守卫限制路由跳转
router.beforeEach((to, from, next) => {
	if (!to.meta.isPublic && !localStorage.token){
		return next('/login')
	}
	next()
})

export default router
